<?php
require_once 'Empresa.php';
require_once 'Categoria.php';
require_once 'Local.php';
require_once 'Usuario.php';
require_once 'DAO/DAOImagemEvento.php';
require_once 'DAO/DAOLote.php';
require_once 'DAO/DAOConfirmados.php';
require_once 'DAO/DAOEstatisticaEvento.php';
require_once 'DAO/DAOComentarioEvento.php';

class Evento {
    private $codigo;
    private $empresa;
    private $categoria;
    private $titulo;
    private $descricao;
    private $horaCriacao;
    private $data;
    private $horaInicio;
    private $horaFim;
    private $local;
    private $ativo;
    
    public function getImagemPrincipal() {
        $DAOImagemEvento = new DAOImagemEvento();
        if($this->codigo!=NULL and $this->codigo!=0){
            $image = $DAOImagemEvento->getImagemPrincipal($this->codigo);
        }
        if($image==NULL){
            $image = new Imagem();
            $image->setImagem('eventos/icon-Empresa.png');
        }
        return $image;
    }
    
    public function getImagens($quantia=0) {
        $DAOImagemEvento = new DAOImagemEvento();
        if($this->codigo!=NULL and $this->codigo!=0){
            return $DAOImagemEvento->getImagens($this->codigo,$quantia);
        }
        return null;
    }
    
    public function getLotes() {
        $DAOLotes = new DAOLote();
        if($this->codigo!=NULL and $this->codigo!=0){
            return $DAOLotes->getLotes($this->codigo);
        }
        return null;
    }
    
    public function getConfirmados() {
        $DAOConfirmados = new DAOConfirmados();
        if($this->codigo!=NULL and $this->codigo!=0){
            return $DAOConfirmados->getConfirmadosByEvento($this->codigo);
        }
        return null;
    }
    
    public function usuarioEstaConfirmado(Usuario $usuario) {
        $DAOConfirmados = new DAOConfirmados();
        if($this->codigo!=NULL and $this->codigo!=0){
            return $DAOConfirmados->usuarioEstaConfirmado($this->codigo, $usuario->getCodigo());
        }
        return false;
    }
    
    public function getEstatisticas() {
        $DAOEstatisticaEvento = new DAOEstatisticaEvento();
        if($this->codigo!=0){
            return $DAOEstatisticaEvento->getEstatisticaByData($this);
        }
        return NULL;
    }
    
    public function getComentarios($quantia=0) {
        $DAOComentarioEvento = new DAOComentarioEvento();
        if($this->codigo!=0){
            return $DAOComentarioEvento->getComentarios($this, $quantia);
        }
        return false;
    }
    
    
    public function getHoraCriacao() {
        return $this->horaCriacao;
    }

    public function setHoraCriacao($horaCriacao) {
        $this->horaCriacao = $horaCriacao;
    }
    
    public function getCodigo() {
        return $this->codigo;
    }

    public function setCodigo($codigo) {
        $this->codigo = $codigo;
    }

    public function getEmpresa() {
        return $this->empresa;
    }

    public function setEmpresa(Empresa $empresa) {
        $this->empresa = $empresa;
    }

    public function getCategoria() {
        return $this->categoria;
    }

    public function setCategoria(Categoria $categoria) {
        $this->categoria = $categoria;
    }

    public function getTitulo() {
        return $this->titulo;
    }

    public function setTitulo($titulo) {
        $this->titulo = $titulo;
    }

    public function getDescricao() {
        return $this->descricao;
    }

    public function setDescricao($descricao) {
        $this->descricao = $descricao;
    }

    public function getData() {
        return $this->data;
    }

    public function setData($data) {
        $this->data = $data;
    }

    public function getHoraInicio() {
        return $this->horaInicio;
    }

    public function setHoraInicio($horaInicio) {
        $this->horaInicio = $horaInicio;
    }

    public function getHoraFim() {
        return $this->horaFim;
    }

    public function setHoraFim($horaFim) {
        $this->horaFim = $horaFim;
    }

    public function getLocal() {
        return $this->local;
    }

    public function setLocal(Local $local) {
        $this->local = $local;
    }
    
    public function getAtivo() {
        return $this->ativo;
    }

    public function setAtivo($ativo) {
        $this->ativo = $ativo;
    }

}

?>
